package com.insurance.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.insurance.common.dto.ProposalCustomerEntityDto;
import com.insurance.common.utils.PageUtils;
import com.insurance.entity.ProposalEntity;
import com.insurance.service.entity.BidBillEntity;

import java.util.Map;

/**
 * 
 */
public interface BidBillService extends IService<BidBillEntity> {

    PageUtils queryPage(Map<String, Object> params);

    //region 通过订单主键查询

    /**
     * 通过订单主键查询
     *
     * @param orderId 订单主键
     * @return
     */
    BidBillEntity queryByOrderId(String orderId);
    //endregion

    //region 通过投保单主键查询

    /**
     * 通过投保单主键查询
     *
     * @param proposalId 投保单主键
     * @return
     */
    BidBillEntity queryByProposalId(String proposalId);
    //endregion

    //region 保存发票信息并打印

    /**
     * 保存发票信息并打印
     *
     * @param bidBillEntity 发票实体
     * @param taxPayerNO 发票纳税人编号
     * @param proposalEntity 投保单实体
     * @param proposalCustomerEntityDto 投保人dto实体
     * @return 返回发票信息字节数组
     * @throws Exception
     */
    byte[] saveAndPrintInvoice(BidBillEntity bidBillEntity, String taxPayerNO,
             ProposalEntity proposalEntity, ProposalCustomerEntityDto proposalCustomerEntityDto) throws Exception;
    //endregion

}

